﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.ObjectModel;
using System.Configuration;

namespace SharpShare.Configuration {
    public interface IKeyedElementCollection {
        ConfigurationElement this[string name] { get; }
        int Count { get; }

        void Add(ConfigurationElement element);
        void Remove(ConfigurationElement element);
        ConfigurationElement CreateElement();
    }
    public interface IKeyedElementCollection<out TElement> : IKeyedElementCollection, IEnumerable<TElement> 
        where TElement : ConfigurationElement, IKeyedElement {
        new TElement this[string name] { get; }
        new TElement CreateElement();
    }
}
